package com.leyou.item.web;

import com.leyou.item.entity.Item;
import com.leyou.item.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

//测试异常处理器ControllerAdvice
@RestController
@RequestMapping("/item")
public class ItemController {

    @Autowired
    private ItemService itemService;

    /**
     * 前台提交参数
     * 3种形式
     * 1，表单提交（get，post，参数形式(key=value&key=value),get参数在地址栏，post在请求体）
     * @RequestParam("key") 接收
     * 替代形式 pojo，编译器行为，根据pojo getter方法自动生成@RequestParam(value=fileName，required=false)
     *
     *
     * 2,对象提交，request payload
     * @param item
     * @return
     * @RequestBody 接收
     *
     * 3, 路径参数  /{param}
     * @PathVariable("param")  接收
     */
    @PostMapping    //表单提交形式 根据pojo getter方法自动生成@RequestParam(value=name，required=false)
    public ResponseEntity<Item> saveItem(Item item) {
        Item result = itemService.saveItem(item);
        // 新增成功, 返回201
        return ResponseEntity.status(HttpStatus.CREATED).body(result);
    }

//    @PostMapping
//    public ResponseEntity<Item> saveItem(Item item){
//        try {
//            Item result = itemService.saveItem(item);
//            // 新增成功, 返回201
//            return ResponseEntity.status(HttpStatus.CREATED).body(result);
//        } catch (Exception e) {
//            // 失败，返回400
//            return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
//        }
//    }
}
